//
// Description: 高精度加法 模板（大数相加）
// Created by Loading on 2021/10/10.
//

/* 适用于求两个超大数（超过 64 位无符号整型）相加的结果 */

#include <bits/stdc++.h>

using namespace std;

// res = A + B， A >= 0，B >= 0，注意：A、B 均为逆序存储，第一位为个位
vector<int> add(vector<int> &A, vector<int> &B) {
    vector<int> res;

    // 进位
    int t = 0;
    for (int i = 0; i < A.size() || i < B.size(); ++i) {
        if (i < A.size()) {
            t += A[i];
        }
        if (i < B.size()) {
            t += B[i];
        }
        res.emplace_back(t % 10);
        t /= 10;
    }

    // 循环结束仍有进位，追加 1
    if (t) {
        res.emplace_back(1);
    }

    return res;
}

int main() {
    string s1 = "123879437826", s2 = "98763409733";

    vector<int> A, B;
    // 逆序存储
    for (int i = (int) s1.size() - 1; i >= 0; --i) {
        A.emplace_back(s1[i] - '0');
    }
    for (int i = (int) s2.size() - 1; i >= 0; --i) {
        B.emplace_back(s2[i] - '0');
    }

    vector<int> res = add(A, B);
    for (int i = (int) res.size() - 1; i >= 0; --i) {
        cout << res[i];
    }
    cout << endl;

    return 0;
}